home *** CD-ROM | disk | FTP | other *** search
Text File | 1989-10-23 | 4.4 KB | 315 lines | [TEXT/PJMM] |
- unit DrawMondrian;
-
- interface
-
- uses
- Utilities, Globals;
-
- procedure GenerateRectangles;
- procedure GenerateSquares;
- procedure GenerateCircles;
- procedure GenerateTriangles;
-
- implementation
-
-
-
- procedure GenerateRectangles;
- const
- OPRANGE = 10;
- DELAY = 20;
-
- var
- windowWidth: integer;
- windowHeigth: integer;
- corner1: point;
- corner2: point;
- randomRect: rect;
- operation: integer;
- HowWide, HowHigh: integer;
-
- begin
-
- with ScreenBits.bounds do
- begin
- HowWide := right - left;
- HowHigh := bottom - top
- end;
-
- with corner1 do
- begin
- h := Randomize(HowWide);
- v := Randomize(HowHigh);
- end;
- with corner2 do
- begin
- h := Randomize(HowWide);
- v := Randomize(HowHigh);
- end;
- SystemTask;
- Pt2Rect(corner1, corner2, randomRect);
- SystemTask;
- operation := Randomize(OPRANGE);
- case operation of
- 0:
- PaintRect(randomRect);
- 1:
- EraseRect(randomRect);
- otherwise
- InvertRect(randomRect)
- end;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
-
-
-
-
-
-
-
-
- end;
- procedure GenerateSquares;
- const
- OPRANGE = 10;
- DELAY = 20;
-
- var
- windowWidth: integer;
- windowHeigth: integer;
- corner1: point;
- corner2: point;
- randomRect: rect;
- operation: integer;
- HowWide, HowHigh, r: integer;
-
- begin
-
- with ScreenBits.bounds do
- begin
- HowWide := right - left;
- HowHigh := bottom - top
- end;
-
- with corner1 do
- begin
- h := Randomize(HowWide);
- v := Randomize(HowHigh);
- end;
- with corner2 do
- begin
- r := Randomize(180);
- h := corner1.h + r;
- v := corner1.v + r;
- end;
- SystemTask;
- Pt2Rect(corner1, corner2, randomRect);
- SystemTask;
- operation := Randomize(OPRANGE);
- case operation of
- 0:
- PaintRect(randomRect);
- 1:
- EraseRect(randomRect);
- otherwise
- InvertRect(randomRect)
- end;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
-
-
-
-
-
-
-
- end;
- procedure GenerateCircles;
- const
- OPRANGE = 10;
- DELAY = 20;
-
- var
- windowWidth: integer;
- windowHeigth: integer;
- corner1: point;
- corner2: point;
- randomRect: rect;
- operation: integer;
- HowWide, HowHigh, r: integer;
-
- begin
-
- with ScreenBits.bounds do
- begin
- HowWide := right - left;
- HowHigh := bottom - top
- end;
-
- with corner1 do
- begin
- h := Randomize(HowWide);
- v := Randomize(HowHigh);
- end;
- with corner2 do
- begin
- r := Randomize(180);
- h := corner1.h + r;
- v := corner1.v + r;
- end;
- SystemTask;
- Pt2Rect(corner1, corner2, randomRect);
- SystemTask;
- operation := Randomize(OPRANGE);
- case operation of
- 0:
- PaintOval(randomRect);
- 1:
- EraseOval(randomRect);
- otherwise
- InvertOval(randomRect)
- end;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
-
-
-
-
-
-
-
- end;
- procedure GenerateTriangles;
- const
- OPRANGE = 10;
- DELAY = 20;
-
- var
- thePolygon: Polyhandle;
- windowWidth: integer;
- windowHeigth: integer;
- corner1: point;
- corner2, corner3: point;
- operation: integer;
- HowWide, HowHigh, r: integer;
-
- begin
- with ScreenBits.bounds do
- begin
- HowWide := right - left;
- HowHigh := bottom - top
- end;
- with corner1 do
- begin
- h := Randomize(HowWide);
- v := Randomize(HowHigh);
- end;
- SystemTask;
- HowHigh := Randomize(180);
- r := Integer(HowHigh);
- HowWide := r div 2;
- thePolygon := OpenPoly;
- MoveTo(corner1.h, corner1.v);
- Line(HowHigh, HowWide);
- Line(0, -(HowWide * 2));
- Line(-(HowHigh), HowWide);
- ClosePoly;
- SystemTask;
-
-
- operation := Randomize(OPRANGE);
- case operation of
- 0:
- PaintPoly(thePolygon);
- 1:
- ErasePoly(thePolygon);
- otherwise
- InvertPoly(thePolygon)
- end;
- KillPoly(thePolygon);
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
- Wait(2);
- SystemTask;
-
-
-
-
-
-
-
- end;
-
-
-
- end.